% Changelog
% 2020-05-4
%   已经与 pandoc 2.9.2 的默认模板比对过
%   修正了页头和页脚的显示
%   删除了文档中多余的代码
%   修正了部分与字体相关的设置
%%
% This is the zYx.Tom pandoc LaTeX template.
%
% For usage information and examples visit the official GitHub page:
% https://github.com/zhuyuanxiang/StudyNotes-CN/tree/master/template
%%

% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode$for(hyperrefoptions)$,$hyperrefoptions$$endfor$}{hyperref}
\PassOptionsToPackage{hyphens}{url}
\PassOptionsToPackage{dvipsnames,svgnames*,x11names*,table}{xcolor}
$if(dir)$
$if(latex-dir-rtl)$
\PassOptionsToPackage{RTLdocument}{bidi}
$endif$
$endif$
%
\documentclass[
$if(fontsize)$
  $fontsize$,
$endif$
$if(lang)$
  $babel-lang$,
$endif$
$if(papersize)$
  $papersize$paper,
$else$
  a4paper,
$endif$
$if(beamer)$
  ignorenonframetext,
  $if(handout)$
    handout,
  $endif$
  $if(aspectratio)$
    aspectratio=$aspectratio$,
  $endif$
$endif$
$for(classoption)$
  $classoption$$sep$,
$endfor$
captions=tableheading,
twoside
]{$if(beamer)$$documentclass$$else$$if(book)$scrbook$else$scrartcl$endif$$endif$}
$if(beamer)$
  $if(background-image)$
    \usebackgroundtemplate{%
      \includegraphics[width=\paperwidth]{$background-image$}%
    }
  $endif$
  \usepackage{pgfpages}
  \setbeamertemplate{caption}[numbered]
  \setbeamertemplate{caption label separator}{: }
  \setbeamercolor{caption name}{fg=normal text.fg}
  \beamertemplatenavigationsymbols$if(navigation)$$navigation$$else$empty$endif$
  $for(beameroption)$
    \setbeameroption{$beameroption$}
  $endfor$
  % Prevent slide breaks in the middle of a paragraph
  \widowpenalties 1 10000
  \raggedbottom
  $if(section-titles)$
    \setbeamertemplate{part page}{
      \centering
      \begin{beamercolorbox}[sep=16pt,center]{part title}
        \usebeamerfont{part title}\insertpart\par
      \end{beamercolorbox}
    }
    \setbeamertemplate{section page}{
      \centering
      \begin{beamercolorbox}[sep=12pt,center]{part title}
        \usebeamerfont{section title}\insertsection\par
      \end{beamercolorbox}
    }
    \setbeamertemplate{subsection page}{
      \centering
      \begin{beamercolorbox}[sep=8pt,center]{part title}
        \usebeamerfont{subsection title}\insertsubsection\par
      \end{beamercolorbox}
    }
    \AtBeginPart{
      \frame{\partpage}
    }
    \AtBeginSection{
      \ifbibliography
      \else
        \frame{\sectionpage}
      \fi
    }
    \AtBeginSubsection{
      \frame{\subsectionpage}
    }
  $endif$
$endif$
$if(beamerarticle)$
  \usepackage{beamerarticle} % needs to be loaded first
$endif$
$if(fontfamily)$
  \usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
$else$
  \usepackage{lmodern}
$endif$
$if(linestretch)$
  \usepackage{setspace}
  \setstretch{$linestretch$}
$else$
  \usepackage{setspace}
  \setstretch{1.2}
$endif$
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
  \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
$if(mathspec)$
  \ifxetex
    \usepackage{mathspec}
  \else
    \usepackage{unicode-math}
  \fi
$else$
  \usepackage{unicode-math}
$endif$
  \defaultfontfeatures{Scale=MatchLowercase}
  \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
$if(mainfont)$
  \setmainfont[$for(mainfontoptions)$$mainfontoptions$$sep$,$endfor$]{$mainfont$}
$endif$
$if(sansfont)$
  \setsansfont[$for(sansfontoptions)$$sansfontoptions$$sep$,$endfor$]{$sansfont$}
$endif$
$if(monofont)$
  \setmonofont[$for(monofontoptions)$$monofontoptions$$sep$,$endfor$]{$monofont$}
$endif$
$for(fontfamilies)$
  \newfontfamily{$fontfamilies.name$}[$for(fontfamilies.options)$$fontfamilies.options$$sep$,$endfor$]{$fontfamilies.font$}
$endfor$
$if(mathfont)$
  $if(mathspec)$
    \ifxetex
      \setmathfont(Digits,Latin,Greek)[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
    \else
      \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
    \fi
  $else$
    \setmathfont[$for(mathfontoptions)$$mathfontoptions$$sep$,$endfor$]{$mathfont$}
  $endif$
$endif$
$if(CJKmainfont)$
  \ifxetex
    \usepackage{fontspec} 	% 允許設定字體
    \usepackage{xeCJK} 		% 分開設置中英文字型
    \setCJKmainfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
    \linespread{1.2}\selectfont 	% 行距
    \XeTeXlinebreaklocale "zh" 	% 針對中文自動換行
    \XeTeXlinebreakskip = 0pt plus 1pt % 字與字之間加入0pt至1pt的間距，確保左右對整齊
    \parindent 0em 		% 段落縮進
    \setlength{\parskip}{20pt} 	% 段落之間的距離
    \usepackage{xltxtra,xunicode}
    \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
    \newcommand{\euro}{€}
  \fi
$endif$
$if(luatexjapresetoptions)$
  \ifluatex
    \usepackage[$for(luatexjapresetoptions)$$luatexjapresetoptions$$sep$,$endfor$]{luatexja-preset}
  \fi
$endif$
$if(CJKmainfont)$
  \ifluatex
    \usepackage[$for(luatexjafontspecoptions)$$luatexjafontspecoptions$$sep$,$endfor$]{luatexja-fontspec}
    \setmainjfont[$for(CJKoptions)$$CJKoptions$$sep$,$endfor$]{$CJKmainfont$}
  \fi
$endif$
\fi
$if(beamer)$
  $if(theme)$
    \usetheme[$for(themeoptions)$$themeoptions$$sep$,$endfor$]{$theme$}
  $endif$
  $if(colortheme)$
    \usecolortheme{$colortheme$}
  $endif$
  $if(fonttheme)$
    \usefonttheme{$fonttheme$}
  $endif$
  $if(mainfont)$
    \usefonttheme{serif} % use mainfont rather than sansfont for slide text
  $endif$
  $if(innertheme)$
    \useinnertheme{$innertheme$}
  $endif$
  $if(outertheme)$
    \useoutertheme{$outertheme$}
  $endif$
$endif$
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
  \usepackage[$for(microtypeoptions)$$microtypeoptions$$sep$,$endfor$]{microtype}
  \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
$if(indent)$
$else$
  \makeatletter
  \@ifundefined{KOMAClassName}{% if non-KOMA class
    \IfFileExists{parskip.sty}{%
      \usepackage{parskip}
    }{% else
      \setlength{\parindent}{0pt}
      \setlength{\parskip}{6pt plus 2pt minus 1pt}}
  }{% if KOMA class
    \KOMAoptions{parskip=half}}
  \makeatother
$endif$
$if(verbatim-in-note)$
  \usepackage{fancyvrb}
$endif$
\usepackage{xcolor}
\definecolor{default-linkcolor}{HTML}{A50000}
\definecolor{default-filecolor}{HTML}{A50000}
\definecolor{default-citecolor}{HTML}{4077C0}
\definecolor{default-urlcolor}{HTML}{4077C0}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
$if(footnotes-pretty)$
  % load footmisc in order to customize footnotes (footmisc has to be loaded before hyperref, cf. https://tex.stackexchange.com/a/169124/144087)
  \usepackage[hang,flushmargin,bottom,multiple]{footmisc}
  \setlength{\footnotemargin}{0.8em} % set space between footnote nr and text
  \setlength{\footnotesep}{\baselineskip} % set space between multiple footnotes
  \setlength{\skip\footins}{0.3cm} % set space between page content and footnote
  \setlength{\footskip}{0.9cm} % set space between footnote and page bottom
$endif$
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\hypersetup{
$if(title-meta)$
  pdftitle={$title-meta$},
$endif$
$if(author-meta)$
  pdfauthor={$author-meta$},
$endif$
$if(lang)$
  pdflang={$lang$},
$endif$
$if(subject)$
  pdfsubject={$subject$},
$endif$
$if(keywords)$
  pdfkeywords={$for(keywords)$$keywords$$sep$, $endfor$},
$endif$
$if(colorlinks)$
  colorlinks=true,
  linkcolor=$if(linkcolor)$$linkcolor$$else$default-linkcolor$endif$,
  filecolor=$if(filecolor)$$filecolor$$else$default-filecolor$endif$,
  citecolor=$if(citecolor)$$citecolor$$else$default-citecolor$endif$,
  urlcolor=$if(urlcolor)$$urlcolor$$else$default-urlcolor$endif$,
$else$
  hidelinks,
$endif$
breaklinks=true,
pdfcreator={LaTeX via pandoc with the zYx.Tom template}}
\urlstyle{same} % disable monospaced font for URLs
$if(verbatim-in-note)$
  \VerbatimFootnotes % allow verbatim text in footnotes
$endif$
$if(geometry)$
  $if(beamer)$
  \geometry{$for(geometry)$$geometry$$sep$,$endfor$}
  $else$
  \usepackage[$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
  $endif$
$else$
  $if(beamer)$
  $else$
  \usepackage[margin=2.5cm,includehead=true,includefoot=true,centering,$for(geometry)$$geometry$$sep$,$endfor$]{geometry}
  $endif$
$endif$
$if(logo)$
  \usepackage[export]{adjustbox}
  \usepackage{graphicx}
$endif$
$if(beamer)$
  \newif\ifbibliography
$endif$
$if(listings)$
  \usepackage{listings}
  \newcommand{\passthrough}[1]{#1}
  \lstset{defaultdialect=[5.3]Lua}
  \lstset{defaultdialect=[x86masm]Assembler}
$endif$
$if(listings-no-page-break)$
  \usepackage{etoolbox}
  \BeforeBeginEnvironment{lstlisting}{\par\noindent\begin{minipage}{\linewidth}}
  \AfterEndEnvironment{lstlisting}{\end{minipage}\par\addvspace{\topskip}}
$endif$
$if(lhs)$
  \lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
$endif$
$if(highlighting-macros)$
  $highlighting-macros$
  % Workaround/bugfix from jannick0.
  % See https://github.com/jgm/pandoc/issues/4302#issuecomment-360669013)
  % or https://github.com/Wandmalfarbe/pandoc-latex-template/issues/2
  %
  % Redefine the verbatim environment 'Highlighting' to break long lines (with
  % the help of fvextra). Redefinition is necessary because it is unlikely that
  % pandoc includes fvextra in the default template.
  \usepackage{fvextra}
  \DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,fontsize=$if(code-block-font-size)$$code-block-font-size$$else$\small$endif$,commandchars=\\\{\}}
$endif$
$if(tables)$
  \usepackage{longtable,booktabs}
  $if(beamer)$
    \usepackage{caption}
    % Make caption package work with longtable
    \makeatletter
    \def\fnum@table{\tablename~\thetable}
    \makeatother
  $else$
    % Correct order of tables after \paragraph or \subparagraph
    \usepackage{etoolbox}
    \makeatletter
    \patchcmd\longtable{\par}{\if@noskipsec\mbox{}\fi\par}{}{}
    \makeatother
    % Allow footnotes in longtable head/foot
    \IfFileExists{footnotehyper.sty}{\usepackage{footnotehyper}}{\usepackage{footnote}}
    \makesavenoteenv{longtable}
  $endif$
$endif$
% add backlinks to footnote references, cf. https://tex.stackexchange.com/questions/302266/make-footnote-clickable-both-ways
$if(footnotes-disable-backlinks)$
$else$
  \usepackage{footnotebackref}
$endif$
$if(graphics)$
  % \usepackage{graphicx,grffile} 去掉grffile支持jpg文件
  \usepackage{graphicx}
  \makeatletter
  \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi}
  \def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi}
  \makeatother
  % Scale images if necessary, so that they will not overflow the page
  % margins by default, and it is still possible to overwrite the defaults
  % using explicit options in \includegraphics[width, height, ...]{}
  \setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio}

  %zYxTom add like template.tex
  % Set default figure placement to htbp
  \makeatletter
  \def\fps@figure{htbp}
  \makeatother
$endif$
$if(links-as-notes)$
  % Make links footnotes instead of hotlinks:
  \DeclareRobustCommand{\href}[2]{#2\footnote{\url{#1}}}
$endif$
$if(strikeout)$
  \usepackage[normalem]{ulem}
  % Avoid problems with \sout in headers with hyperref
  \pdfstringdefDisableCommands{\renewcommand{\sout}{}}
$endif$
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
$if(numbersections)$
  \setcounter{secnumdepth}{$if(secnumdepth)$$secnumdepth$$else$5$endif$}
$else$
  \setcounter{secnumdepth}{-\maxdimen} % remove section numbering
$endif$
$if(beamer)$
$else$
  $if(block-headings)$
    % Make \paragraph and \subparagraph free-standing
    \ifx\paragraph\undefined\else
      \let\oldparagraph\paragraph
      \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
    \fi
    \ifx\subparagraph\undefined\else
      \let\oldsubparagraph\subparagraph
      \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
    \fi
  $endif$
$endif$
$if(pagestyle)$
  \pagestyle{$pagestyle$}
$endif$

% Make use of float-package and set default placement for figures to H.
% The option H means 'PUT IT HERE' (as  opposed to the standard h option which means 'You may put it here if you like').
\usepackage{float}
\floatplacement{figure}{$if(float-placement-figure)$$float-placement-figure$$else$H$endif$}

$for(header-includes)$
  $header-includes$
$endfor$
$if(lang)$
  \ifxetex
    $if(mainfont)$
    $else$
      % See issue https://github.com/reutenauer/polyglossia/issues/127
      \renewcommand*\familydefault{\sfdefault}
    $endif$
    % Load polyglossia as late as possible: uses bidi with RTL langages (e.g. Hebrew, Arabic)
    \usepackage{polyglossia}
    \setmainlanguage[$polyglossia-lang.options$]{$polyglossia-lang.name$}
    $for(polyglossia-otherlangs)$
      \setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
    $endfor$
  \else
    \usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=$babel-lang$]{babel}
    $if(babel-newcommands)$
      $babel-newcommands$
    $endif$
  \fi
$endif$
$if(dir)$
  \ifxetex
    % Load bidi as late as possible as it modifies e.g. graphicx
    \usepackage{bidi}
  \fi
  \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
    \TeXXeTstate=1
    \newcommand{\RL}[1]{\beginR #1\endR}
    \newcommand{\LR}[1]{\beginL #1\endL}
    \newenvironment{RTL}{\beginR}{\endR}
    \newenvironment{LTR}{\beginL}{\endL}
  \fi
$endif$
$if(natbib)$
  \usepackage[$natbiboptions$]{natbib}
  \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$}
$endif$
$if(biblatex)$
  \usepackage[$if(biblio-style)$style=$biblio-style$,$endif$$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$]{biblatex}
  $for(bibliography)$
  \addbibresource{$bibliography$}
  $endfor$
$endif$
$if(csl-refs)$
  \newlength{\cslhangindent}
  \setlength{\cslhangindent}{1.5em}
  \newenvironment{cslreferences}%
    {$if(csl-hanging-indent)$\setlength{\parindent}{0pt}%
    \everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces$endif$}%
    {\par}
$endif$

$if(title)$
  \title{$title$$if(thanks)$\thanks{$thanks$}$endif$}
$endif$
$if(subtitle)$
  $if(beamer)$
  $else$
    \usepackage{etoolbox}
    \makeatletter
    \providecommand{\subtitle}[1]{% add subtitle to \maketitle
      \apptocmd{\@title}{\par {\large #1 \par}}{}{}
    }
    \makeatother
  $endif$
  \subtitle{$subtitle$}
$endif$
$if(author)$
  \author{$for(author)$$author$$sep$ \and $endfor$}
$endif$
\date{$date$}
$if(beamer)$
  $if(institute)$
  \institute{$for(institute)$$institute$$sep$ \and $endfor$}
  $endif$
  $if(titlegraphic)$
    \titlegraphic{\includegraphics{$titlegraphic$}}
  $endif$
  $if(logo)$
    \logo{\includegraphics{$logo$}}
  $endif$
$endif$



%%
%% added
%%

%
% language specification
%
% If no language is specified, use English as the default main document language.
%
$if(lang)$$else$
  \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
    \usepackage[shorthands=off,$for(babel-otherlangs)$$babel-otherlangs$,$endfor$main=english]{babel}
    $if(babel-newcommands)$
      $babel-newcommands$
    $endif$
  \else
    $if(mainfont)$
    $else$
      % Workaround for bug in Polyglossia that breaks `\familydefault` when `\setmainlanguage` is used.
      % See https://github.com/Wandmalfarbe/pandoc-latex-template/issues/8
      % See https://github.com/reutenauer/polyglossia/issues/186
      % See https://github.com/reutenauer/polyglossia/issues/127
      \renewcommand*\familydefault{\sfdefault}
    $endif$
    % load polyglossia as late as possible as it *could* call bidi if RTL lang (e.g. Hebrew or Arabic)
    \usepackage{polyglossia}
    \setmainlanguage[]{english}
    $for(polyglossia-otherlangs)$
      \setotherlanguage[$polyglossia-otherlangs.options$]{$polyglossia-otherlangs.name$}
    $endfor$
  \fi
$endif$

$if(page-background)$
  \usepackage[pages=all]{background}
$endif$

%
% for the background color of the title page
%
$if(titlepage)$
  \usepackage{pagecolor}
  \usepackage{afterpage}
  $if(titlepage-background)$
    \usepackage{tikz}
  $endif$
  $if(geometry)$
  $else$
    \usepackage[margin=2.5cm,includehead=true,includefoot=true,centering]{geometry}
  $endif$
$endif$

%
% break urls
%
\PassOptionsToPackage{hyphens}{url}

%
% When using babel or polyglossia with biblatex, loading csquotes is recommended
% to ensure that quoted texts are typeset according to the rules of your main language.
%
\usepackage{csquotes}

%
% captions
%
\definecolor{caption-color}{HTML}{777777}
$if(beamer)$
$else$
  \usepackage[font={stretch=1.2}, textfont={color=caption-color}, position=top, skip=4mm, labelfont=bf, singlelinecheck=false, justification=$if(caption-justification)$$caption-justification$$else$raggedright$endif$]{caption}
  \setcapindent{0em}
$endif$

%
% blockquote
%
\definecolor{blockquote-border}{RGB}{221,221,221}
\definecolor{blockquote-text}{RGB}{119,119,119}
\usepackage{mdframed}
\newmdenv[rightline=false,bottomline=false,topline=false,linewidth=3pt,linecolor=blockquote-border,skipabove=\parskip]{customblockquote}
\renewenvironment{quote}{\begin{customblockquote}\list{}{\rightmargin=0em\leftmargin=0em}%
\item\relax\color{blockquote-text}\ignorespaces}{\unskip\unskip\endlist\end{customblockquote}}

%
% heading color
%
\definecolor{heading-color}{RGB}{40,40,40}
$if(beamer)$
$else$
  \addtokomafont{section}{\color{heading-color}}
$endif$
% When using the classes report, scrreprt, book,
% scrbook or memoir, uncomment the following line.
%\addtokomafont{chapter}{\color{heading-color}}

%
% variables for title and author
%
$if(beamer)$
$else$
  \usepackage{titling}
  \title{$title$}
  \author{$for(author)$$author$$sep$, $endfor$}
$endif$

%
% tables
%
$if(tables)$

  \definecolor{table-row-color}{HTML}{F5F5F5}
  \definecolor{table-rule-color}{HTML}{999999}

  %\arrayrulecolor{black!40}
  \arrayrulecolor{table-rule-color}     % color of \toprule, \midrule, \bottomrule
  \setlength\heavyrulewidth{0.3ex}      % thickness of \toprule, \bottomrule
  \renewcommand{\arraystretch}{1.3}     % spacing (padding)

  $if(table-use-row-colors)$
    % TODO: This doesn't work anymore. I don't know why.
    % Reset rownum counter so that each table
    % starts with the same row colors.
    % https://tex.stackexchange.com/questions/170637/restarting-rowcolors
    %
    % Unfortunately the colored cells extend beyond the edge of the
    % table because pandoc uses @-expressions (@{}) like so:
    %
    % \begin{longtable}[]{@{}ll@{}}
    % \end{longtable}
    %
    % https://en.wikibooks.org/wiki/LaTeX/Tables#.40-expressions
    \let\oldlongtable\longtable
    \let\endoldlongtable\endlongtable
    \renewenvironment{longtable}{
    \rowcolors{3}{}{table-row-color!100}  % row color
    \oldlongtable} {
    \endoldlongtable
    \global\rownum=0\relax}
  $endif$
$endif$

%
% remove paragraph indention
%
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
\setlength{\emergencystretch}{3em}  % prevent overfull lines

%
%
% Listings
%
%

$if(listings)$

  %
  % general listing colors
  %
  \definecolor{listing-background}{HTML}{F7F7F7}
  \definecolor{listing-rule}{HTML}{B3B2B3}
  \definecolor{listing-numbers}{HTML}{B3B2B3}
  \definecolor{listing-text-color}{HTML}{000000}
  \definecolor{listing-keyword}{HTML}{435489}
  \definecolor{listing-keyword-2}{HTML}{1284CA} % additional keywords
  \definecolor{listing-keyword-3}{HTML}{9137CB} % additional keywords
  \definecolor{listing-identifier}{HTML}{435489}
  \definecolor{listing-string}{HTML}{00999A}
  \definecolor{listing-comment}{HTML}{8E8E8E}

  \lstdefinestyle{eisvogel_listing_style}{
    language         = java,
  $if(listings-disable-line-numbers)$
    xleftmargin      = 0.6em,
    framexleftmargin = 0.4em,
  $else$
    numbers          = left,
    xleftmargin      = 2.7em,
    framexleftmargin = 2.5em,
  $endif$
    backgroundcolor  = \color{listing-background},
    basicstyle       = \color{listing-text-color}\linespread{1.0}$if(code-block-font-size)$$code-block-font-size$$else$\small$endif$\ttfamily{},
    breaklines       = true,
    frame            = single,
    framesep         = 0.19em,
    rulecolor        = \color{listing-rule},
    frameround       = ffff,
    tabsize          = 4,
    numberstyle      = \color{listing-numbers},
    aboveskip        = 1.0em,
    belowskip        = 0.1em,
    abovecaptionskip = 0em,
    belowcaptionskip = 1.0em,
    keywordstyle     = {\color{listing-keyword}\bfseries},
    keywordstyle     = {[2]\color{listing-keyword-2}\bfseries},
    keywordstyle     = {[3]\color{listing-keyword-3}\bfseries\itshape},
    sensitive        = true,
    identifierstyle  = \color{listing-identifier},
    commentstyle     = \color{listing-comment},
    stringstyle      = \color{listing-string},
    showstringspaces = false,
    escapeinside     = {/*@}{@*/}, % Allow LaTeX inside these special comments
    literate         =
    {á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
    {Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
    {à}{{\`a}}1 {è}{{\'e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
    {À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
    {ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
    {Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
    {â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
    {Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
    {œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
    {ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
    {€}{{\EUR}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
    {»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
    {…}{{\ldots}}1 {≥}{{>=}}1 {≤}{{<=}}1 {„}{{\glqq}}1 {“}{{\grqq}}1
    {”}{{''}}1
  }
  \lstset{style=eisvogel_listing_style}

  %
  % Java (Java SE 12, 2019-06-22)
  %
  \lstdefinelanguage{Java}{
    morekeywords={
      % normal keywords (without data types)
      abstract,assert,break,case,catch,class,continue,default,
      do,else,enum,exports,extends,final,finally,for,if,implements,
      import,instanceof,interface,module,native,new,package,private,
      protected,public,requires,return,static,strictfp,super,switch,
      synchronized,this,throw,throws,transient,try,volatile,while,
      % var is an identifier
      var
    },
    morekeywords={[2] % data types
      % primitive data types
      boolean,byte,char,double,float,int,long,short,
      % String
      String,
      % primitive wrapper types
      Boolean,Byte,Character,Double,Float,Integer,Long,Short
      % number types
      Number,AtomicInteger,AtomicLong,BigDecimal,BigInteger,DoubleAccumulator,DoubleAdder,LongAccumulator,LongAdder,Short,
      % other
      Object,Void,void
    },
    morekeywords={[3] % literals
      % reserved words for literal values
      null,true,false,
    },
    sensitive,
    morecomment  = [l]//,
    morecomment  = [s]{/*}{*/},
    morecomment  = [s]{/**}{*/},
    morestring   = [b]",
    morestring   = [b]',
  }

  \lstdefinelanguage{XML}{
    morestring      = [b]",
    moredelim       = [s][\bfseries\color{listing-keyword}]{<}{\ },
    moredelim       = [s][\bfseries\color{listing-keyword}]{</}{>},
    moredelim       = [l][\bfseries\color{listing-keyword}]{/>},
    moredelim       = [l][\bfseries\color{listing-keyword}]{>},
    morecomment     = [s]{<?}{?>},
    morecomment     = [s]{<!--}{-->},
    commentstyle    = \color{listing-comment},
    stringstyle     = \color{listing-string},
    identifierstyle = \color{listing-identifier}
  }
$endif$

%
% header and footer
%
$if(beamer)$
$else$
  $if(disable-header-and-footer)$
  $else$
    \usepackage{fancyhdr}
    \pagestyle{fancy}
    \fancyhf{} % 清空默认内容
    % 奇偶页功能必须定义：documentclass[twoside]
    \fancyhead[L]{$if(header-left)$$header-left$$else${\nouppercase{\leftmark}}$endif$}
    \fancyhead[OC]{$if(header-center)$$header-center$$else$$endif$}
    \fancyhead[EC]{$if(header-center)$$header-center$$else$$endif$}
    \fancyhead[R]{$if(header-right)$$header-right$$else${\nouppercase{\rightmark}}$endif$}
    \fancyfoot[L]{$if(footer-left)$$footer-left$$else$QQ: 526614962$endif$}
    \fancyfoot[CO]{$if(footer-center)$$footer-center$$else${\href{https://zhuyuanxiang.github.io}{zYx.Tom's 主页网址}}$endif$}
    \fancyfoot[CE]{$if(footer-center)$$footer-center$$else${\href{https://github.com/zhuyuanxiang/StudyNotes-CN}{读书笔记仓库网址}}$endif$}
    \fancyfoot[R]{$if(footer-right)$$footer-right$$else$\thepage$endif$}
    \renewcommand{\headrulewidth}{0.4pt}
    \renewcommand{\footrulewidth}{0.4pt}
  $endif$
$endif$

%%
%% end added
%%

\begin{document}

$if(beamer)$
$else$
  $if(titlepage)$
  %%
  %% begin titlepage
  %%
  \begin{titlepage}
      $if(titlepage-background)$
    \newgeometry{top=2cm, right=4cm, bottom=3cm, left=4cm}
      $else$
    \newgeometry{left=6cm}
        $endif$
      $if(titlepage-color)$
    \definecolor{titlepage-color}{HTML}{$titlepage-color$}
    \newpagecolor{titlepage-color}\afterpage{\restorepagecolor}
        $endif$
      $if(titlepage-background)$
    \tikz[remember picture,overlay] \node[inner sep=0pt] at (current page.center){\includegraphics[width=\paperwidth,height=\paperheight]{$titlepage-background$}};
      $endif$
    \newcommand{\colorRule}[3][black]{\textcolor[HTML]{#1}{\rule{#2}{#3}}}
    \begin{flushleft}
      \noindent
      \\[-1em]
      \color[HTML]{$if(titlepage-text-color)$$titlepage-text-color$$else$5F5F5F$endif$}
      \makebox[0pt][l]{\colorRule[$if(titlepage-rule-color)$$titlepage-rule-color$$else$435488$endif$]{1.3\textwidth}{$if(titlepage-rule-height)$$titlepage-rule-height$$else$4$endif$pt}}
      \par
      \noindent
        
        $if(titlepage-background)$
      % The titlepage with a background image has other text spacing and text size
      {
        \setstretch{2}
        \vfill
        \vskip -8em
        \noindent {\huge \textbf{\textsf{$title$}}}
            $if(subtitle)$
        \vskip 1em
        {\Large \textsf{$subtitle$}}
              $endif$
        \vskip 2em
        \noindent {\Large \textsf{$for(author)$$author$$sep$, $endfor$} \vskip 0.6em \textsf{$date$}}
        \vfill
      }
        $else$
      {
        \setstretch{1.4}
        \vfill
        \noindent {\huge \textbf{\textsf{$title$}}}
                $if(subtitle)$
        \vskip 1em
        {\Large \textsf{$subtitle$}}
              $endif$
        \vskip 2em
        \noindent {\Large \textsf{$for(author)$$author$$sep$, $endfor$}}
        \vfill
      }
        $endif$
        
        $if(logo)$
      \noindent
      \includegraphics[width=$if(logo-width)$$logo-width$$else$100$endif$pt, left]{$logo$}
        $endif$
        
        $if(titlepage-background)$
        $else$
      \textsf{$date$}
        $endif$
    \end{flushleft}
  \end{titlepage}
  \restoregeometry
  %%
  %% end titlepage
  %%
  $endif$
$endif$

$if(page-background)$
\backgroundsetup{
scale=1,
color=black,
opacity=$if(page-background-opacity)$$page-background-opacity$$else$0.2$endif$,
angle=0,
contents={%
  \includegraphics[width=\paperwidth,height=\paperheight]{$page-background$}
  }%
}
$endif$

$if(has-frontmatter)$
  \frontmatter
$endif$
$if(title)$
  $if(beamer)$
  \frame{\titlepage}  
  $else$
  \maketitle
  $endif$
  $if(abstract)$
  \begin{abstract}
    $abstract$
  \end{abstract}
  $endif$
$endif$

$if(first-chapter)$
  \setcounter{chapter}{$first-chapter$}
  \addtocounter{chapter}{-1}
$endif$

$for(include-before)$
  $include-before$
$endfor$

$if(toc)$
  $if(toc-title)$
  \renewcommand*\contentsname{$toc-title$}
  $endif$
  $if(beamer)$
  \begin{frame}[allowframebreaks]
      $if(toc-title)$
    \frametitle{$toc-title$}
      $endif$
    \tableofcontents[hideallsubsections]
    \clearpage % 使目录单独成页
  \end{frame}
    $if(toc-own-page)$
  \newpage % 使目录单独成页
    $endif$
  $else$
  {
  $if(colorlinks)$
    \hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$$endif$}
      $endif$
    \setcounter{tocdepth}{$if(toc-depth)$$toc-depth$$else$5$endif$}
    \tableofcontents
    \clearpage % 使目录单独成页
      $if(toc-own-page)$
    \newpage
      $endif$
  }
  $endif$
$endif$

% lot
$if(lot)$
  \listoftables
$endif$

% lof
$if(lof)$
  \listoffigures
$endif$

% linestretch
$if(linestretch)$
  \setstretch{$linestretch$}
$endif$

$if(has-frontmatter)$
  \mainmatter
$endif$

$body$

$if(has-frontmatter)$
  \backmatter
$endif$

% natbib
$if(natbib)$
  $if(bibliography)$
    $if(biblio-title)$
      $if(has-chapters)$
  \renewcommand\bibname{$biblio-title$}
      $else$
  \renewcommand\refname{$biblio-title$}
      $endif$
    $endif$
    $if(beamer)$
  \begin{frame}[allowframebreaks]{$biblio-title$}
    \bibliographytrue
    $endif$
    \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}
    $if(beamer)$
  \end{frame}
    $endif$
  $endif$
$endif$

% biblatex
$if(biblatex)$
  $if(beamer)$
  \begin{frame}[allowframebreaks]{$biblio-title$}
    \bibliographytrue
    \printbibliography[heading=none]
  \end{frame}
  $else$
  \printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$
  $endif$
$endif$

$for(include-after)$
  $include-after$
$endfor$

\end{document}